//package com.zyt.springboot.jiamibao;
//
//import lombok.extern.log4j.Log4j;
//import org.jasypt.util.password.StrongPasswordEncryptor;
//import org.springframework.util.Base64Utils;
//
//import javax.crypto.Cipher;
//import javax.crypto.KeyGenerator;
//import javax.crypto.SecretKey;
//import javax.crypto.spec.SecretKeySpec;
//import java.security.NoSuchAlgorithmException;
//import java.security.SecureRandom;
//
//@Log4j
//public class AesUtil {
//
//    private static final String KEY_ALGORITHM = "AES";
//    private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";//默认的加密算法
//    //自定义密码(这个到时候问一下集合计划的对接人员)
//    //private static final String ASSETS_DEV_PWD_FIELD = "123456";
//
//    /*public static String getAssetsDevPwdField() {
//        return ASSETS_DEV_PWD_FIELD;
//    }*/
//
//    /**
//     * AES 加密操作
//     *
//     * @param content  待加密内容
//     * @param password 加密密码
//     * @return 返回Base64转码后的加密数据
//     */
//    public static String encrypt(String content, String password) {
//        try {
//            Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);// 创建密码器
//
//            byte[] byteContent = content.getBytes("utf-8");
//
//            cipher.init(Cipher.ENCRYPT_MODE, getSecretKey(password));// 初始化为加密模式的密码器
//
//            byte[] result = cipher.doFinal(byteContent);// 加密
//
//            return Base64Utils.encodeToString(result);//通过Base64转码返回
//        } catch (Exception ex) {
//            log.error("AES加密失败:"+ex.getMessage());
//        }
//
//        return null;
//    }
//
//    /**
//     * AES 解密操作
//     *
//     * @param content
//     * @param password
//     * @return
//     */
//    public static String decrypt(String content, String password) {
//
//        try {
//            //实例化
//            Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
//            //使用密钥初始化，设置为解密模式
//            cipher.init(Cipher.DECRYPT_MODE, getSecretKey(password));
//            //执行操作
//            byte[] result = cipher.doFinal(Base64Utils.decodeFromString(content));
//            String s = new String(result, "utf-8");
//            return s;
//        } catch (Exception ex) {
//            ex.printStackTrace();
//            log.error("AES解密失败:"+ex.getMessage());
//        }
//
//        return null;
//    }
//
//
//    /**
//     * 生成加密秘钥
//     *
//     * @return
//     */
//    private static SecretKeySpec getSecretKey(String password) {
//        //返回生成指定算法密钥生成器的 KeyGenerator 对象
//        KeyGenerator kg = null;
//        try {
//            kg = KeyGenerator.getInstance(KEY_ALGORITHM);
//            SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
//            random.setSeed(password.getBytes());
//            //AES 要求密钥长度为 128
//            kg.init(128, random);
//            //生成一个密钥
//            SecretKey secretKey = kg.generateKey();
//            return new SecretKeySpec(secretKey.getEncoded(), KEY_ALGORITHM);// 转换为AES专用密钥
//        } catch (NoSuchAlgorithmException ex) {
//            log.error("AES生成秘钥失败:"+ex.getMessage());
//        }
//        return null;
//    }
//
//    public static String getRandomString(int length){
//        String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//        SecureRandom random = null;
//        try {
//            random = SecureRandom.getInstance("SHA1PRNG");
//        } catch (NoSuchAlgorithmException e) {
//            e.printStackTrace();
//        }
//        StringBuffer sb=new StringBuffer();
//        for(int i=0;i<length;i++){
//            int number=random.nextInt(62);
//            sb.append(str.charAt(number));
//        }
//        return sb.toString();
//    }
//
//    public static void main(String[] args) {
//        SecretKeySpec a =  getSecretKey("123456");
//        System.out.println(a);
//        StrongPasswordEncryptor encryptor = new StrongPasswordEncryptor();
//        String str = encryptor.encryptPassword("Picc@1024");
//        System.out.println("nacos密码加密："+str);
//
//    }
//}
